home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / utilz / mmcmps12 / mmcmp.doc < prev    next >
Text File  |  1996-02-20  |  16KB  |  359 lines

  1.                 MUSIC MODULE COMPRESSOR
  2.                                  version  1.20
  3.                       
  4.                                  User's Manual
  5.  
  6.  
  7. Table of contents:
  8.  
  9.         1. Introduction
  10.         2. Information on MMCMP:
  11.           2.1.  Requirements
  12.           2.2.  Files in this packages      
  13.       2.3.  Features of this version
  14.     3. Usage:
  15.       3.1.  Compressing modules
  16.       3.2.  Uncompressing modules
  17.       3.3.  Using MMTSR     <-- read this!!!
  18.       3.4.  Technical Stuff about MMTSR
  19.     4. Some legal stuff...
  20.     5. Closing words
  21.     6. Contacting the author
  22.  
  23.         <See MMUPDATE.DOC fow latest implementations!>
  24.  
  25.  
  26. 1. Introduction
  27.  
  28.         As music modules are constantly growing larger and larger, it becomes 
  29.         interesting to compress those modules to save space on disk.  
  30.         However, files compressed using "standard" compression utility may be 
  31.         played by only a few players and can't usually be loaded into a 
  32.         conventionnal tracker for editing and composing.  But now, MMCMP 
  33.         offer you the possibility to do so.  
  34.                 
  35.         MMCMP is a conventionnal compression utility that will compress music 
  36.         modules, giving approximatively the same ratio you could expect with 
  37.         any popular compression utility.  It is not some kind of special sound 
  38.         compression like MPEG2, for example, which may give a very gound 
  39.         compression ratio, but modifies the data and tends to lower sound 
  40.         quality.  MMCMP does not modify the original sound data, and 
  41.         decompressing a compressed module (using MMUNCMP) gives back the 
  42.         original module.
  43.  
  44.         What's special with MMCMP is the small TSR (Terminate and Stay 
  45.         Resident) utility (MMTSR.EXE) which, once loaded, decompresses in 
  46.         "background" compressed modules when they are loaded by "ANY" player 
  47.         or tracker.  So you DON'T NEED TO DECOMPRESS MODULES TO PLAY THEM BACK!
  48.         However, due to technical reasons, MMTSR can't compress module when, 
  49.         within a tracker, you save them back on your disk.  You'll have to do 
  50.         this "manually" with MMCMP.
  51.  
  52.         Fortunately, this shall be soon possible, as I'm currently working 
  53.         with Jeffrey Lim, the author of *Impulse Tracker*, so that IT will 
  54.         include compression/decompression routines.  A few trackers already 
  55.         used some kind of sample compression, but as far that I know, this 
  56.         shall be the first tracker (I guess) with such a reasonable 
  57.         compression (ratio approximatively equal to ZIP, ARJ, LZH, etc.. and 
  58.         twice or thrice faster!)
  59.  
  60.  
  61.  
  62. 2. Information on MMCMP
  63.  
  64.   2.1. Requirements:
  65.      
  66.         - A 80386 based or better computer (does anybody still have something
  67.           worse????)  
  68.         - around 350k of free conventionnal memory
  69.         - 100k of free exTended memory (for MMTSR only)
  70.         - some free space on your drive C: (for MMTSR only) to uncompress a 
  71.           module (the size of a module is needed...)
  72.  
  73.     These requirements may change with future version of the program.
  74.     See the "Features" section down here and the MMUPDATE.DOC file.
  75.  
  76.   2.2. Files in this package:
  77.  
  78.     You should have all the following files:
  79.  
  80.     MMCMP.EXE       The compression utility
  81.     MMUNCMP.EXE     The decompression utility
  82.     MMTSR.EXE       The TSR version of MMUNCMP
  83.     MMCMP.DOC       This file...
  84.     MMUPDATE.DOC    Information on previous, current and future releases
  85.     FILE_ID.DIZ     Small description for BBS
  86.  
  87.     If you wish to distribute MMCMP, see the legal stuff below.
  88.  
  89.   2.3. Features of this version:
  90.  
  91.     MMCMP can actually compress module of the following formats and
  92.     supports everything supported by the specified tracker version:
  93.      - S3M: Scream Tracker 3 module (ST3 version 3.21)
  94.         (adlib samples not supported (who cares...) but MMCMP supports
  95.         16 bits    samples even if ST3 doesn't)
  96.      - IT:  Impulse Tracker module (IT version 1.04)
  97.      - XM:    Extended Module (Fast Tracker 2.05)
  98.  
  99.     These are the trackers with which MMCMP has been tested.  Of course,
  100.         MMCMP might work correctly with module made from newer versions of 
  101.         those trackers as long as modules don't hold newly implemented 
  102.         features, and it is possible that MMCMP may not handle correctly what 
  103.         was said to be "currently unsupported" by those trackers.
  104.  
  105.     Actually, MMCMP supports only 8/16 bits mono compression.  This    doesn't
  106.     mean much though, because data like patterns, which aren't samples, are
  107.     compressed too.  It only means that, for example, stereo samples will
  108.         soon have their own compression scheme so they can be compressed much 
  109.         better.  However, among currently supported module formats, none of 
  110.         their respective trackers actually support stereo samples, so stereo 
  111.         support won't be implementedd until it has to...
  112.  
  113.  
  114.  
  115. 3. Usage:
  116.  
  117.   3.1. Compressing Modules:
  118.  
  119.         To compress a module, simply type at the prompt:
  120.  
  121.              MMCMP modulename [modulename] [modulename]...
  122.  
  123.     "modulename" may include a drive letter, a full path, as well as '*'
  124.         and '?' wildcards.  You may also specify more than one modulename.
  125.         The file extension must be specified.  Omitting modulname will show
  126.         this command line syntax.
  127.  
  128.        *IMPORTANT NOTE:*
  129.  
  130.     =>> MMCMP WILL REPLACE THE ORIGINAL MODULE with the compressed one unless
  131.     an error occured during the process.  The new file will then have the
  132.     same name, date and time, than the original one.  If an error occured
  133.     while compressing, the module will remain unchanged.  If your module
  134.     is "read only", MMCMP won't be able to replace it and will save the
  135.     compressed module in a temporary file, giving you the name of this
  136.     file.
  137.  
  138.   3.2. Uncompressing Modules:
  139.  
  140.     To uncompress a module, type at the prompt:
  141.  
  142.         MMUNCMP modulename [modulename] [...]
  143.  
  144.     The syntax follows the same rules than for MMCMP, explained above.
  145.     Note that MMUNCMP, like MMCMP will replace the compressed module by
  146.     the uncompressed one.  It will also behave like MMCMP if an error
  147.     occurs.
  148.  
  149.   3.3. Using MMTSR:
  150.  
  151.     MMTSR is loaded by typing "MMTSR" at the prompt.  It will allocate
  152.         101k of extended memory (expanded is not supported yet) and take 3.2k
  153.     of conventionnal memory for itself.  Load it "high" if you can, by
  154.     typing "lh mmstr" at the prompt, so it doesn't use "low" memory used
  155.     by most applications.  Once it is resident in memory, it will
  156.     systematically decompress any file it detects as compressed modules.
  157.     Technically speaking, every file BEGINNING with the "ziRCONia"
  158.     signature WILL be decompressed.
  159.  
  160.     NOTE:
  161.     MMTSR CAN'T be unloaded from memory (unless you reboot your system of
  162.     course...), but can be enabled/disabled anytime if you think it
  163.     interfere with something else in your system.  To desactivate MMTSR,
  164.     simply type "mmtsr off" and to reactivate it, type "mmtsr on" at the
  165.     command prompt.
  166.  
  167.     When decompressing a module, MMTSR opens a tempory file in the root
  168.     directory of drive C: (C:\_~zirc~_.tmp, but this shall be configurable
  169.     in future versiona of MMTSR)  This means that it will most probably
  170.     don't work correctly if some program opens more than one compressed
  171.     module at once.  Of course, a player may load more than one module into
  172.     memory, as long as a compressed module is not opened before the
  173.     previous one is closed first.  Usually, trackers and players don't
  174.     open more than one module at once.
  175.  
  176.     Furthermore, since every compressed file is decompressed when it is
  177.     opened, program that scan every modules to get their name, info, etc,
  178.     will be consequently slowed down during scanning.  If music is
  179.     playing while a file is decompress, some weird things might occur
  180.     with the playback, only during decompression, depending on the
  181.     player/tracker you are using.  But don't worry, it shouldn't hurt ;)
  182.     This is only due to the way the computer processes "background
  183.     events", i.e, most of the time, decompressing file in "background"
  184.     and playing music in background can't be done at the same time.
  185.         Under certain circumstances, MMTSR let the music playback continue 
  186.         normally, but sometimes playback is slowed down, or paused.  This
  187.         really depends on your player or tracker.
  188.  
  189.  
  190.     IMPORTANT:
  191.  
  192.     MMTSR works for READ ONLY decompressing, i.e. any program, player,
  193.     tracker, may read any compressed module, but attempting to write into
  194.     a compressed module WHILE it is STILL open will return an error to
  195.     the program that attempted to write, like if it was a read only
  196.     file.  This prevents corruption of the compressed module since the
  197.     player/tracker sees the module file as a non-compressed file.
  198.     However, since players don't write into modules and trackers usually
  199.     rewrite the whole module, there won't be any problem.
  200.  
  201.     Frthermore, using MMTSR to load modules which have been compressed
  202.     using a newer version of MMCMP (with new compression scheme, i.e only
  203.     adding new module format or that sort of thing doesn't change
  204.     anything here) might crash your computer.  It doesn't do anything
  205.     bad, but you'll have to reboot your system.  It might also not crash,
  206.     instead it will only load data in a wrong manner, and results are
  207.     much unpredictable (for example, a sample could sound like garbage).
  208.         But if you don't save and overwrite your module after it has been
  209.     altered in some ways, DATA CAN'T BE MODIFIED and will remain like it
  210.     was before.  Simply use MMUNCMP to decompress it correctly.
  211.  
  212.     This is all because MMTSR, being resident in memory and working in
  213.     "background", can't interact with the user if something is wrong.
  214.     Thus, to keep MMTSR as small as possible so it doesn't take too much
  215.     memory, no check or verification is done for newly implemented
  216.     features, not supported by the current verion of MMTSR.  Consequently,
  217.     you should always use the latest version of MMTSR you own.
  218.  
  219.     A lot of work has to be done around MMTSR to improve it, and a setup
  220.     utility will probably be released soon to let the user configure
  221.     MMTSR (temporary file path, extended/expanded memory support,
  222.     etc..)  Check the file MMUPDATE.DOC.
  223.  
  224.   3.4.    Technical stuff ahout MMTSR:
  225.  
  226.     - MMTSR intercepts the "open file" and "close file" functions of
  227.       INT 21h.
  228.     - To check if MMTSR is installed, call INT 21h with AX=4370h.  If
  229.       MMTSR is not installed, this funciton will probably not be supported
  230.       and CF will be set.  But if MMTSR is installed, CF will be cleared,
  231.       and EAX=4352697Ah ('ziRC').
  232.     - MMTSR may be disabled by calling INT 21h with AX=4372h
  233.     - Call INT 21h with AX=4371h to reenable it.
  234.     - Both 4371h and 4372h functions will return with CF cleared and
  235.       EAX=4352697Ah if MMTSR is loaded.
  236.  
  237.  
  238. 4. Some legal stuff:
  239.  
  240. I CAN'T BE HELD RESPONSIBLE FOR ANYTHING THAT COULD HAPPEN TO YOU, YOUR
  241. MACHINE, OR WHOEVER OR WHATEVER, RESULTING FROM ANY USE OF THIS SOFTWARE.  BY
  242. USING THIS SOFTWARE, YOU ARE AUTOMATICALLY ACCEPTING THIS, AS WELL AS THE
  243. FOLLOWING PARAGRAPH:
  244.  
  245. YOU MAY NOT MODIFY ANY PART OF THIS SOFTWARE, NOR YOU MAY ADD OR REMOVE 
  246. ANYTHING TO OR FROM ANY OF ITS FILES.  IF YOU'RE NOT A DISTRIBUTOR, YOU MAY 
  247. HOWEVER FREELY DISTRIBUTE AND COPY IT, AS LONG AS EVERY FILES ARE PACKAGED OR 
  248. ARCHIVED TOGETHER AND NO FILE IS MODIFIED OR REMOVED.  YOU MAY ARCHIVE OTHER 
  249. FILES WITH THIS SOFTWARE FOR ADVERTISING PURPOSE ONLY, BUT THIS SOFTWARE MUST 
  250. NOT BE INVOLVED IN ANY WAYS IN THIS ADVERTISING NOR RELATED TO ANY OTHER 
  251. PRODUCT.  YOU MAY NOT CHARGE ANYTHING FOR THIS SOFTWARE OR PARTS OF IT.  
  252. DISTRIBUTORS WHO ARE INTERESTED IN THIS SOFTWARE OR ANYBODY ELSE WHO WISHES TO 
  253. MAKE COMMERCIAL USE OF IT OR PARTS OF IT MUST GET MY WRITTEN CONSENT FIRST.
  254.  
  255.     If you wish to copy it, please archive or compress files under the
  256.     following filename:
  257.         MMCMPxyy.eee
  258.  
  259.         Where 'x' and 'yy' are the version number (x.yy).  For Beta releases, 
  260.         replace the last 'y' by a 'b'. 'eee' is simply the extension added by 
  261.         the archiver. Since there's some work being done between Jeffrey Lim, 
  262.         the author of Impulse Tracker, and me, you may also distribute MMCMP 
  263.         files along with Impulse Tracker.
  264.  
  265.  
  266.  
  267. 5. Closing words:
  268.  
  269.         This is one of the first official release of MMCMP, and I'm sorry if 
  270.         this doc contains errors or some information is missing... please 
  271.         contact me if you wish to notify anyhting about it.
  272.  
  273.     I personnaly conceive the compression algorithm two or three years
  274.     ago, and after having written from scratch three very different
  275.         versions of my program (the third is the good one) here it is! But I
  276.     haven't been really alone, I'd like to thank:
  277.  
  278.         Jeffrey Lim: For spending a lot of time trying to fix bugs in his 
  279.                      tracker, while bugs were within my program, (dear 
  280.                      MMTSR...;])  Also helped me to spread my program all over 
  281.                      the world by putting my program along with his tracker 
  282.                      (*Impulse Tracker* of course...) Also did beta testing.  
  283.                      Thanks a lot!
  284.  
  285.     Beta Testers:   Nicolas Szapiel (Moonbeam / )
  286.             Nicolas Roberge (Populous / )
  287.             Samuel Cote (Balrog / KFMF)
  288.                         Dominic (Mammouth)                   
  289.  
  290.     And anyone else who uses my program, and all those who are sending me
  291.     comments, info, questions, bugs reports (...shouldn't happen ;]) !!
  292.  
  293.         Furthermore, if you find my utility VERY convenient, and you think 
  294.         that it worth something (well... anything), maybe you could send me 
  295.         that 'something' ;)  Seriously, MMCMP is NOT a very big utility and I 
  296.         "don't" ask anything for it.  I've spent many many many hours to 
  297.         conceive, code and debug this utility, and I'm still working on it... 
  298.         but this is FREEware meant to please the whole planet!  However if you
  299.         feel happy and generous, follow your feelings!  And if people around 
  300.         you feel the same way, get together to form an happy and generous 
  301.         group!  I know an university student who works hard to pay his school 
  302.         fees that would be very happy to receive a little something in a 
  303.         little envelope in his little snail-mail box :-)  I will also write 
  304.         your name/nick or whatever you want (simply specify it) into a "very 
  305.         kind people" list!  So... open your mind, feel the generous person 
  306.         within you, and... ;)
  307.  
  308.         As I said in the intro, my compression algorithm shall be soon
  309.     integrated to Impulse Tracker, so watch this out!!! and read the
  310.     MMUPDATE.DOC file!!
  311.  
  312.  
  313. 6. Contacting the author
  314.  
  315.     If you wish to ask or report something, or for any comment, contact
  316.     me...
  317.  
  318.     ... via e-mail:
  319.         giassone@ift.ulaval.ca
  320.         OR  Emmanuel.Giasson@ift.ulaval.ca (same thing...)
  321.  
  322.         Subject: MMCMP    (or whatever else you want...)
  323.  
  324.         (I shall have this mail account up to april '98, and maybe
  325.         more...)
  326.  
  327.     ... via snail mail:
  328.         Emmanuel Giasson
  329.         158, rue Gariepy
  330.         St-Redempteur, Quebec
  331.         G6K 1M5
  332.         Canada
  333.  
  334.         (this shall also still be good for a couple of years...)
  335.  
  336.     ... via IRC ;)
  337.                 though this 'may' not be very serious, if you happen to be on
  338.                 the same 'IRC net' (try irc.polymtl.ca or irc.magic.ca, and
  339.                 many others around the world), look for 'Zirconia', often on 
  340.                 channel #quebec (well, as for now...).  Try between 7pm and 
  341.                 2am, Eastern North American time (-6h00 GMT)
  342.  
  343.     If you are reporting me bugs, please, try to be as explicit as
  344.     possible!  If you wish to use my compression algorithm, ask me first,
  345.     but if you only want to get the algoritmh to decompress data (well,
  346.     this may seems to be the same thing, but in fact, this is much
  347.     simpler) you may ask me (because I haven't yet included it along with
  348.     the software) or wait until it is integrated to IT.  The decompression
  349.     algorithm shall be there for anybody (i.e. players/trackers
  350.     programmers) who might like to add support for compressed IT modules.
  351.  
  352.  
  353. DON'T FORGET TO LOOK THE MMUPDATE.DOC FILE!!!!!
  354.  
  355. Enjoy!
  356.  
  357. Emmanuel Giasson a/s Zirconia
  358.  
  359.